package leetcode.offer_two_special.tree;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.util.TreeMap;

/**
 * @author mazouri
 * @create 2021-09-16 9:38
 */
public class MyCalendar {
//    ArrayList<ArrayList<Integer>> list;
//
//    public MyCalendar() {
//        list = new ArrayList<>();
//    }
//
//    public boolean book(int start, int end) {
//
//        for (ArrayList<Integer> arr : list) {
//            if (end > arr.get(0) && start < arr.get(1)) return false;
//        }
//
//        ArrayList<Integer> list = new ArrayList<>();
//        list.add(start);
//        list.add(end);
//        this.list.add(list);
//        return true;
//    }


    TreeMap<Integer, Integer> treeMap;

    public MyCalendar() {
        treeMap = new TreeMap<>();
    }

    public boolean book(int start, int end) {
        // 41-50 33-41 39-45
        Map.Entry<Integer, Integer> floorEntry = treeMap.floorEntry(start);
        if (floorEntry != null && floorEntry.getValue() > start) return false;

        Map.Entry<Integer, Integer> ceilingEntry = treeMap.ceilingEntry(start);
        if (ceilingEntry != null && ceilingEntry.getKey() < end) return false;

        treeMap.put(start,end);
        return true;
    }

}
